﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace comm
{
    public interface IProtoWriter
    {
        bool BeginObject(string name, uint nameHash);
        void EndObject();
        void BeginParams(uint maxParams);
        void EndParams(uint numSavedParams);
        void BeginParam(string name, uint nameHash);
        void EndParam();
        void WriteNull();
        void WriteFloat(float value);
        void WriteDouble(double value);
        void WriteUint8(byte value);
        void WriteUint16(ushort value);
        void WriteUint32(uint value);
        void WriteUint64(ulong value);
        void WriteInt8(sbyte value);
        void WriteInt16(short value);
        void WriteInt32(int value);
        void WriteInt64(long value);
        void WriteBool(bool value);
        void WriteString(string value);
        void BeginArray(string name, uint typeHash, int numElements);
        void EndArray();
    }
}
